package shun.vm;

/**
 * Created by chen on 14-5-18.
 */
public class Main {

    public static void main(String[] args) {
        if (args.length != 1) {
            printHelp();
            return;
        }

//        String codeFileName = args[0];
//        byte[] codes = loadCode(codeFileName);

        byte[] codes = {
                0x06, 0x00, 0x00, 0x00, 0x00, (byte) 0xfe, // mov v0, 0xfe
                0x06, 0x01, 0x00, 0x00, 0x00, 0x01, // mov v1, 0x01
                0x01, 0x00, 0x01, // add v0, v1
                0x06, 0x01, 0x00, 0x00, 0x00, (byte) 0x10, // mov v1, 0x10
                0x04, 0x00, 0x01, // div v0, v1
                0x06, 0x01, 0x00, 0x00, 0x00, 0x07, // mov v1, 0x07
                0x02, 0x00, 0x01, // sub v0, v1
                0x06, 0x01, 0x00, 0x00, 0x00, 0x02, // mov v1, 0x02
                0x03, 0x00, 0x01, // mul v0, v1
                0x06, 0x01, 0x00, 0x00, 0x00, 0x03, // mov v1, 0x03
                0x05, 0x00, 0x01, // mod v0, v1
        };
        System.out.println("Code length " + codes.length);
        VM vm = new VM();
        vm.loadCode(codes);
        vm.execute();
    }

    private static void printHelp() {
        System.out.print("Simple VM\n" +
                "author: Shun Chen email: shchen1989@gmail.com\n" +
                "usage: java -jar vm <code_file>");
    }
}
